'''
* This is the projet for Brtc LlmOps Platform
* @Author Leon-liao <liaosiliang@alltman.com>
* @Description //TODO 
* @File: 2_study_chain_memory.py
* @Time: 2025/7/25
* @All Rights Reserve By Brtc
'''
import dotenv
from langchain.chains.llm import LLMChain
from langchain_community.chat_models import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

dotenv.load_dotenv()
# 1、构建提示词
prompt = ChatPromptTemplate.from_template("请讲一个关于{subject}主题的冷笑话")

# 2、构建大语言模型
llm = ChatOpenAI(model="gpt-3.5-turbo-16k")

# 构建一个chain
chain = LLMChain(prompt=prompt, llm = llm)

# 在没有 LCEL 表达式之前， 拥有多种 方法导致大家很迷惑 不知道用什么放方法
print(chain("程序员"))
print(chain.run("程序员"))
print(chain.apply("程序员"))
print(chain.generate("程序员"))
print(chain.predict("程序员 "))


print(chain.invoke({"subject": "程序员"}))
